﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Data;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
using vdos.jobseeker.Utils;

namespace vdos.jobseeker.AdminCP.Message
{
    public partial class message_all_published : System.Web.UI.Page
    {
        public string sKeyword = "";
        public string sSource = "";
        public string sAuthor = "";
        public string sPostFrom = "";
        public string sPostTo = "";
        public int nCategoryID = 0;


        private int _totalRecords;
        private int nPageSize = 20;

        protected void Page_Load(object sender, EventArgs e)
        {
            if (Session["USER"] == null) { Response.Redirect("/login.aspx"); }
            else
            {
                if (hash1way.CheckPermission(hash1way.GetPermission(Session["USER"].ToString()), "SYSADMIN") == false)
                {
                    if (hash1way.CheckPermission(hash1way.GetPermission(Session["USER"].ToString()), "HOMEPAGE") == false)
                    {
                        Response.Redirect("/message_box.aspx?why=1&msg=5");
                    }
                }
            }

            if (!Page.IsPostBack)
            {
                if (Request.QueryString["keyword"] != null) { sKeyword = Request.QueryString["keyword"].Trim(); }
                // if (Request.QueryString["Source"] != null) { sSource = Request.QueryString["Source"].Trim(); }
                //if (Request.QueryString["Author"] != null) { sAuthor = Request.QueryString["Author"].Trim(); }
                if (Request.QueryString["PostFrom"] != null) { sPostFrom = Request.QueryString["PostFrom"].Trim(); }
                if (Request.QueryString["PostTo"] != null) { sPostTo = Request.QueryString["PostTo"].Trim(); }
                if (Request.QueryString["CategoryID"] != null) { nCategoryID = ConvertUtility.ToInt32(Request.QueryString["CategoryID"].Trim()); }

                DataBindPaging();
                loadFormSearch();
            }

        }

        private void DataBindPaging()
        {

            try
            {
                string sFilter = "";
                if (sKeyword != "" && sKeyword != "Tiêu đề") sFilter = sFilter + " AND MsgTitle like N'%" + sKeyword + "%'";

                //              if (sSource != "" && sSource != "Nguồn") sFilter = sFilter + " AND MsgSource like N'%" + sSource + "%'";

                if (nCategoryID != 0) sFilter = sFilter + " AND Message.CategoryID =  " + nCategoryID;

                //if (sAuthor != "") sFilter = sFilter + " AND MsgAuthor = '" + sAuthor + "'";

                if (sPostFrom != "" && sPostFrom != "Từ ngày") sFilter = sFilter + " AND MsgPostDate > '" + sPostFrom + "' ";

                if (sPostTo != "" && sPostTo != "Đến ngày") sFilter = sFilter + " AND MsgPostDate < '" + Convert.ToDateTime(sPostTo).AddDays(1).ToShortDateString().ToString() + "' ";


                int curpage = 0;

                if (Request.QueryString["page"] != null)
                {
                    curpage = Convert.ToInt32(Request.QueryString["page"]);
                }
                else
                {
                    curpage = 1;
                }



                DataTable dt = DataHelper.LoadPageInSQL("MessagesList", curpage, nPageSize, ref _totalRecords, new SqlParameter("@Filter", sFilter));

                if (dt.Rows.Count > 0)
                {
                    int nPageCount;

                    if (_totalRecords % nPageSize == 0)
                    {
                        nPageCount = _totalRecords / nPageSize;
                    }
                    else
                    {
                        nPageCount = Convert.ToInt32(_totalRecords / nPageSize) + 1;
                    }

                    if (nPageCount < 2) divPager.Visible = false;

                    PagerShow.Text = hash1way.ShowPageNavigation(curpage, nPageCount);

                    msgList.DataSource = dt;

                    msgList.DataBind();
                    msgNoData.Visible = false;

                }

            }
            catch (Exception ex)
            {
                Response.Write(ex.Message);
            }
        }

        protected void msgList_ItemDataBound(object sender, RepeaterItemEventArgs e)
        {
            if (e.Item.ItemIndex < 0) return;
            DataRowView row = (DataRowView)e.Item.DataItem;

            var chkDelete = (HtmlInputCheckBox)e.Item.FindControl("chkDelete");
            chkDelete.Value = row["MessageID"].ToString();

        }

        protected void btnDelete_Click(object sender, EventArgs e)
        {
            int nAction = int.Parse(ActionOption.Value);
            if (nAction == 1)
            {
                string sArray = "(0";

                foreach (RepeaterItem item in msgList.Items)
                {
                    var chkDelete = (HtmlInputCheckBox)item.FindControl("chkDelete");
                    if (chkDelete.Checked)
                    {
                        sArray = sArray + "," + chkDelete.Value + "";
                    }
                }
                sArray = sArray + ")";

                string sSQL = "delete message where messageID in" + sArray;
                DataHelper.ExecuteNonQuery(sSQL, true);
                Response.Redirect("/Message/message_all_published.aspx");
            }

        }

        protected void btnSearch_Click(object sender, EventArgs e)
        {

            sKeyword = txtSearch.Value.Trim();
            //sSource = txtSource.Value.Trim();
            nCategoryID = int.Parse(CategoryID.SelectedValue);
            //sAuthor = Author.SelectedValue;
            sPostFrom = PostFrom.Value;
            sPostTo = PostTo.Value;
            DataBindPaging();
            loadFormSearch();
        }

        protected void loadFormSearch()
        {
            // Category Option 
            DataTable dt;
            dt = DataHelper.SelectTable("SELECT CategoryID, Name FROM MessageCate  ORDER BY Name", false);
            CategoryID.DataSource = dt;
            CategoryID.DataTextField = "Name";
            CategoryID.DataValueField = "CategoryID";
            CategoryID.DataBind();
            CategoryID.Items.Insert(0, new ListItem("Danh mục", "0"));

            CategoryID.SelectedValue = nCategoryID.ToString();




        }


    }
}